diff options
| author | Joe Carstairs <me@joeac.net> | 2025-04-15 07:52:17 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2025-04-15 07:52:17 +0100 |
| commit | fd5998240f65e3bc3a94e4045f8f5c286a755b1c (patch) | |
| tree | 7e8ee0d2a42d110ca5a8e1618668186075842b47 /src/pages/[locale]/index.astro | |
| parent | c39ad295afa6fbe51bab00870f06465bc62b71b0 (diff) | |
displays date on news items
Diffstat (limited to 'src/pages/[locale]/index.astro')
| -rw-r--r-- | src/pages/[locale]/index.astro | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/pages/[locale]/index.astro b/src/pages/[locale]/index.astro index 7846fd8..15b4005 100644 --- a/src/pages/[locale]/index.astro +++ b/src/pages/[locale]/index.astro @@ -1,10 +1,14 @@ --- -import Page from '$layouts/Page.astro'; -import localeStaticPaths from '$lib/localeStaticPaths'; +import Button from '$components/Button.astro'; +import CommitteeList from '$components/CommitteeList/CommitteeList.astro'; +import NewsIndex from '$components/NewsIndex/NewsIndex.astro'; import translate from '$i18n/translate'; import tPage from '$i18n/translations/pages/home'; +import Page from '$layouts/Page.astro'; +import localeStaticPaths from '$lib/localeStaticPaths'; +import { isBefore, isNewsItemInLocale } from '$lib/newsUtils'; import type Locale from '$types/Locale'; -import CommitteeList from '$components/CommitteeList/CommitteeList.astro'; +import { getCollection } from 'astro:content'; export async function getStaticPaths() { return localeStaticPaths; @@ -12,9 +16,26 @@ export async function getStaticPaths() { const locale = Astro.params.locale as Locale; const t = translate(locale); + +const allNewsItemsInLocale = await getCollection('news', (item) => + isNewsItemInLocale(item, locale) +); +const firstNewsItem = allNewsItemsInLocale.find( + (item) => !allNewsItemsInLocale.some((otherItem) => isBefore(item, otherItem)) +); +if (!firstNewsItem) { + throw new Error('No first news item.'); +} --- <Page title={t(tPage, { key: 'title' })}> + <section id="news"> + <h2 set:html={t(tPage, { key: 'news' })} /> + <NewsIndex headingLevel="h3" newsItems={[firstNewsItem]} /> + <Button classNames="grid-span-3 grid-prose-end" href={`/${locale}/news`}> + {t(tPage, { key: 'aw-news' })} ▶ + </Button> + </section> <section id="about"> <h2 set:html={t(tPage, { key: 'about-us' })} /> <p set:html={t(tPage, { key: 'about-us-para-1' })} /> |
